package p06_DAO;

import bean.Customer;

import java.sql.Connection;
import java.sql.Date;
import java.sql.SQLException;
import java.util.List;

/**
 * 此接口用于规范针对customers表的常用操作
 */
public interface CustomerDAO {
    /**
     * 将customer对象添加到数据库中
     *
     * @param conn
     * @param customer
     */
    int insert(Connection conn, Customer customer) throws SQLException;

    /**
     * 根据id删除记录
     *  @param conn
     * @param id
     * @return
     */
    int deleteById(Connection conn, int id) throws SQLException;

    /**
     * 根据id修改记录
     *  @param conn
     * @param customer
     * @return
     */
    int update(Connection conn, Customer customer) throws SQLException;

    /**
     * 根据id获取customer对象。
     *
     * @param conn
     * @param id
     * @return
     */
    Customer getCustomerById(Connection conn, int id);

    /**
     * 获取表中的所有customer
     *
     * @param conn
     * @return
     */
    List<Customer> getAllCustomers(Connection conn);

    /**
     * 获取表中记录条数
     *
     * @param conn
     * @return
     */
    long getCount(Connection conn);

    /**
     * 获取最大生日（最晚的生日）
     * @param conn
     * @return
     */
    Date getMaxBirth(Connection conn);
}
